package com.secsbrain.development.biz;

import java.util.List;

import com.secsbrain.deploy.client.model.BatchBuildResult;
import com.secsbrain.development.web.dto.BuildSnapshotDTO;
import com.secsbrain.development.web.dto.CommandContext;
import com.secsbrain.development.web.dto.ProjectTaskDTO;
import com.secsbrain.development.web.dto.SingleTaskDTO;

public interface BuilderService {
	
	 /**
     * 单应用管理
     * 执行单例/A组发布
     *
     * @param taskDTO     任务描述
     * @return 执行上下文
     */
	CommandContext execSingleTask(SingleTaskDTO taskDTO);
	
    /**
     * 功能描述: <br>
     * 执行B组发布
     * 
     * @param groupId     分组ID
     * @param envName     环境
     * @param bBuildId    B组构建ID
     * @return
     */
    CommandContext execBGroup(Long groupId,String envName,Long bBuildId);
    
    /**
     * 执行发布计划
     *
     * @param param       执行参数
     * @return 执行上下文
     */
    BatchBuildResult execPublishProject(ProjectTaskDTO param);

    /**
     * 根据发布计划或者应用ID查看执行记录
     *
     * @param projectId 发布计划id
     * @param appId     应用id
     * @param envName   环境名
     * @return 执行上下文
     */
    List<BuildSnapshotDTO> buildRecords(Long projectId, Long appId, String envName);
}
